/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package com.dao;

import com.metier.*;
import com.ihm.*;
import java.util.*;
import java.sql.*;
import java.io.*;
import javax.swing.*;

public class NewsPreparedRequete
{
    private PreparedStatement ps;
    private Connecter connector;
    private JDialog dialogerreur;
    private ResultSet rs;
    private static String date;
    private static ArrayList<String> Datelist;  
    private static ArrayList<String> titre;
    private static ArrayList<String> description;

    /* @Setter Date */
    public static void setDate(String date) 
    {
        NewsPreparedRequete.date = date;
    }
    
    /* @Setter date liste */
    public void setDatelist(ArrayList<String> date) {
        Datelist = date;
    }
    
    /* @Getter Date liste */  
    public static ArrayList<String> getDatelist()
    {
        return Datelist ;
    }

    /* @Setter Titre */
    public static void setTitre(ArrayList<String> titre) {
        NewsPreparedRequete.titre = titre;
    }
    
    /* @Getter Titre */
    public static ArrayList<String> getTitre() {
        return titre;
    }

    /* @Setter Description  */
    public static void setDescription(ArrayList<String> description)
    {
        NewsPreparedRequete.description = description;
    }
    
    /* @ Getter Description */
    public static ArrayList<String> getDescription() {
        return description;
    }
    
    
    public NewsPreparedRequete()
    {   
        connector = new Connecter(); // Connexion à la base de données
    }
    
    /* Requête pour ajouter une nouvelle */
    public void Ajouter()throws SQLException
    {   

            if(!AjouterNewsFenetre.getTextDescription().getText().isEmpty()&&!AjouterNewsFenetre.getTexttitre().getText().isEmpty())
            {
                     String sql ="INSERT INTO news(LibelleNews,DescriptionNews,DateNews) VALUES(?,?,?)";
                     ps = connector.getConnection().prepareStatement(sql);
                     ps.setTimestamp(3,new java.sql.Timestamp(Calendar.getInstance().getTime().getTime()));
                     ps.setString(2,AjouterNewsFenetre.getTextDescription().getText());    
                     ps.setString(1,AjouterNewsFenetre.getTexttitre().getText());
                     ps.executeUpdate();
                     ps.close();
                     JOptionPane.showMessageDialog(null,"Réussite de l'ajout d'une news");  // Message d'information
                     connector.closeconnection(); // On ferme la connexion
            }
            else
            {
                JOptionPane.showMessageDialog(null,"Erreur, merci de remplir tous les champs"); // Message d'erreur
            }
            effacer();
     }
    
     /* Effacer le formulaire dans la fenêtre */
     public void effacer()
     {
         AjouterNewsFenetre.getTextDescription().setText(null);
         AjouterNewsFenetre.getTexttitre().setText(null);
     }
        
     /* Affichage d'un message */
     public void showdialog(String title,String message)
     {
        dialogerreur=new JDialog();
        dialogerreur.setTitle(title);
        dialogerreur.add( new JLabel(message));
        dialogerreur.setLocationRelativeTo(null);
        dialogerreur.setSize(300,100);
        dialogerreur.setResizable(false);
        dialogerreur.setModal(true);
        dialogerreur.setVisible(true);
     }
    
     /* Requête pour récuprérer la liste */
     public void afficher() throws SQLException
     {  
        Datelist = new ArrayList<>();
        titre = new ArrayList<>();
        description = new ArrayList<>();
        
        String sql = "SELECT * FROM news ORDER BY ID_News DESC";
        ps = connector.getConnection().prepareStatement(sql);
        rs = ps.executeQuery();
        while(rs.next())
        {
            Datelist.add(rs.getTimestamp("DateNews").toString());
            titre.add(rs.getString("LibelleNews"));
            description.add(rs.getString("DescriptionNews"));
        }
        ps.close();
      }
             
             
}
